#include "linklist.h"

int main(int argc, char const *argv[])
{
    // 初始化一个空链表
    struct listnode *head = init_list();

    int n;
    while(1)
    {
        scanf("%d", &n);
        if(n == 0)
            break;

        else if(n > 0)
        {
            if(add_list_tail(head, n))
                show(head);
        }

        else if(n < 0)
        {
            struct listnode *p;
            if(p = remove_node(head, -n))
            {
                show(head);
                free(p);
            }
            else
                printf("查无此人！\n");
        }
    }

    // 彻底删除链表
    head = destroy(head); // 执行完毕之后head为NULL

    // 销毁链表，使head恢复初始状态
    // destroy_init(head);   // head保持不变，但节点都释放了

    return 0;
}
